From 59807d3c4a57de81c1a6f98c634e83655428f2c5 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Thu, 18 May 2006 16:19:18 +0100 Subject: [PATCH] Check `global' property of the arch specific virqs. Signed-off-by Kevin Tian --- xen/common/event_channel.c | 3 +++ xen/include/asm-ia64/event.h | 17 +++++++++++++++++ xen/include/asm-x86/event.h | 6 ++++++ 3 files changed, 26 insertions(+) diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c index c02ef9ac08..6218773a1e 100644 --- a/xen/common/event_channel.c +++ b/xen/common/event_channel.c @@ -60,6 +60,9 @@ static int virq_is_global(int virq) case VIRQ_XENOPROF: rc = 0; break; + case VIRQ_ARCH_0 ... VIRQ_ARCH_7: + rc = arch_virq_is_global(virq); + break; default: rc = 1; break; diff --git a/xen/include/asm-ia64/event.h b/xen/include/asm-ia64/event.h index 32afe39795..bcef493eb4 100644 --- a/xen/include/asm-ia64/event.h +++ b/xen/include/asm-ia64/event.h @@ -37,4 +37,21 @@ static inline void evtchn_notify(struct vcpu *v) (!!(v)->vcpu_info->evtchn_upcall_pending & \ !(v)->vcpu_info->evtchn_upcall_mask) +static inline int arch_virq_is_global(int virq) +{ + int rc; + + switch ( virq ) + { + case VIRQ_ITC: + rc = 0; + break; + default: + rc = 1; + break; + } + + return rc; +} + #endif diff --git a/xen/include/asm-x86/event.h b/xen/include/asm-x86/event.h index ad1b9b245a..b51d1acafa 100644 --- a/xen/include/asm-x86/event.h +++ b/xen/include/asm-x86/event.h @@ -31,4 +31,10 @@ static inline void evtchn_notify(struct vcpu *v) (!!(v)->vcpu_info->evtchn_upcall_pending & \ !(v)->vcpu_info->evtchn_upcall_mask) +/* No arch specific virq definition now. Default to global. */ +static inline int arch_virq_is_global(int virq) +{ + return 1; +} + #endif -- 2.30.2